package com.sam.questionBank
// 矩形和线相交
fun main() {
    print(test(1,1,3,3,2,2,5,5))
}

fun test(x1:Int, y1:Int, x2:Int, y2:Int,    // 矩形
         x3:Int, y3:Int, x4:Int, y4:Int     // 线段
):Boolean {
    // 如果有一个点在矩形内，则必相交
    if (pointInRect(x3, y3, x1, y1, x2, y2) || pointInRect(x4, y4, x1, y1, x2, y2)) {
        return true
    }
    // 线段方程 y = kx + b
    // k = (y3 - y4)/ (x3 - x4)
    // b = k x3 - y3
    // y = (y3 - y4) * x / (x3 - x4) -  y3
    //


    return false

}

// 点是否在矩形内
fun pointInRect(
    x: Int, y: Int,
    x1: Int, y1: Int, x2: Int, y2: Int,    // 矩形
) :Boolean{
    return x in x1..x2 && y in y1..y2
}